tg-me.com/php_interview_lib/759
Last Update:
Что нового в РНР 8?
🚀 PHP 8.0
JIT-компиляция: Just-In-Time компилятор улучшает производительность, особенно в вычислительных задачах.
Атрибуты (аннотации): Позволяют добавлять метаданные к классам, методам и свойствам, улучшая читаемость и поддержку кода.
Сопоставление с образцом (match expression): Более строгая и удобная альтернатива конструкции switch
.
Промоция свойств конструктора: Уменьшает количество кода при объявлении свойств в конструкторе.
Объединённые типы (union types): Позволяют указывать несколько типов для параметров и возвращаемых значений.
Оператор nullsafe (?->
): Упрощает работу с возможными null
значениями, предотвращая ошибки.
Новые строки функций: str_contains()
, str_starts_with()
, str_ends_with()
— для удобной работы со строками.
Интерфейс Stringable
: Упрощает работу с объектами, которые могут быть приведены к строке.
Функция get_debug_type()
: Предоставляет точный тип переменной для отладки.
🔧 PHP 8.1
Перечисления (enums): Позволяют создавать наборы констант с типовой безопасностью.
Только для чтения свойства (readonly
): Свойства, которые можно инициализировать только один раз.
Тип never
: Указывает, что функция никогда не возвращает значение (например, всегда выбрасывает исключение).
Синтаксис для первого класса callable: Упрощает создание и использование функций как объектов.
Fibers: Позволяют реализовывать кооперативную многозадачность, полезно для асинхронного кода.
🧪 PHP 8.2
Типы null
, false
, true
как отдельные типы: Улучшает типовую безопасность.
Динамические свойства устарели: Предотвращает ошибки при случайном добавлении свойств в объекты.
Атрибут #[SensitiveParameter]
: Помечает параметры, содержащие чувствительную информацию, для предотвращения их логирования.
🔍 PHP 8.3
Типизация констант классов: Позволяет задавать типы для констант внутри классов.
Атрибут #[\Override]
: Указывает, что метод переопределяет родительский.
Глубокое копирование только для чтения свойств: Обеспечивает корректное поведение при копировании объектов.
Новые функции для работы с случайными значениями: Упрощают генерацию случайных данных.
🧩 PHP 8.4
Хуки свойств (Property Hooks): Возможность определять логику для геттеров и сеттеров непосредственно в свойстве, что упрощает код и уменьшает количество шаблонного кода.
Асимметричная видимость (Asymmetric Visibility): Позволяет задавать разные уровни доступа для чтения и записи свойств, например, сделать свойство доступным только для чтения.
Инстанцирование классов без скобок: Теперь можно вызывать методы сразу после создания объекта без необходимости оборачивать конструкцию в дополнительные скобки.
Новые функции для работы с массивами: array_find()
, array_find_key()
, array_any()
, array_all()
упрощают поиск и проверку элементов в массивах.
Поддержка HTML5 в расширении DOM: Расширение DOM теперь поддерживает HTML5, улучшая работу с современными веб-страницами.
Новые функции для работы со строками: mb_trim()
, mb_ucfirst()
, mb_lcfirst()
предоставляют дополнительные возможности для обработки многобайтовых строк.
Поддержка HTTP/3 в cURL: Добавлены константы CURL_HTTP_VERSION_3
и CURL_HTTP_VERSION_3ONLY
для работы с протоколом HTTP/3.
Новые методы для DateTimeImmutable: Методы createFromTimestamp()
и get/setMicrosecond()
облегчают работу с временными метками и микросекундами.
BY Библиотека собеса по PHP | вопросы с собеседований
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/php_interview_lib/759